package com.huawei.mpchartdemo1;

import android.graphics.Color;
import android.os.Bundle;
import android.service.autofill.Dataset;

import androidx.appcompat.app.AppCompatActivity;

import com.github.mikephil.charting.charts.LineChart;
import com.github.mikephil.charting.components.XAxis;
import com.github.mikephil.charting.components.YAxis;
import com.github.mikephil.charting.data.Entry;
import com.github.mikephil.charting.data.LineData;
import com.github.mikephil.charting.data.LineDataSet;
import com.github.mikephil.charting.interfaces.datasets.ILineDataSet;

import java.util.ArrayList;
import java.util.List;

public class LineChartActivity extends AppCompatActivity {
    private XAxis xAxis;
    private YAxis yAxis;
    private LineChart lineChart;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_line_chart);
        initView();
//        lineChart.setBackgroundColor(Color.WHITE);  //图表背景
//        lineChart.getDescription().setEnabled(false);   //文本描述
//        lineChart.setTouchEnabled(true);    //允许启用/禁用与图表的所有可能的触摸交互。
//        lineChart.setDragEnabled(false);     //启用/禁用图表的拖动（平移）。
//        lineChart.setScaleXEnabled(false);  //启用/禁用 x 轴缩放。
//        lineChart.setScaleEnabled(false);   //启用/禁用 y 轴缩放。
//        lineChart.setScaleEnabled(false);    //启用/禁用两个轴上图表的缩放。
//        lineChart.setPinchZoom(false);   //如果设置为 true，则启用手指触摸图片缩放。如果禁用，则以单独缩放 x 轴和 y 轴。
//        lineChart.setDoubleTapToZoomEnabled(false);     //将此值设置为 false 以禁止通过双击来缩放图表。
//        lineChart.setHighlightPerDragEnabled(true);    //在图表上将此值设置为 true，以便在完全缩 小时在图表表面上进行每次拖动时突出显示。默认值：true
//        lineChart.setDrawGridBackground(false); // 是否显示表格颜色
//        lineChart.setMaxVisibleValueCount(5);
        lineChart.setNoDataText("无数据时显示"); //无数据时显示

        //        x轴设置
        xAxis = lineChart.getXAxis();
////       允许显示 X 轴的垂直网格线
//        xAxis.enableAxisLineDashedLine(10f, 10f, 0f);
//        xAxis.setTextSize(10f);
//        xAxis.setTextColor(Color.RED);
//        xAxis.setEnabled(true);
//        xAxis.setDrawAxisLine(true);    //轴线
//        xAxis.setDrawGridLines(false);  //网格线
//        xAxis.setDrawLabels(true);
//        xAxis.setAvoidFirstLastClipping(true);
        xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);

//       获取 Y 轴
        yAxis = lineChart.getAxisLeft();
//       禁止右轴
        lineChart.getAxisRight().setEnabled(false);
////        Y 轴的水平网格线
//        yAxis.enableGridDashedLine(10f, 10f, 0f);
//        设置 Y 轴的数值范围
//        yAxis.setAxisMaximum(200f);
//        yAxis.setAxisMinimum(-50f);
//        yAxis.setStartAtZero(true);

//        每个数据是一个 Entry
        List<Entry> list = new ArrayList<>();
        list.add(new Entry(0, 3));
        list.add(new Entry(1, 10));
        list.add(new Entry(2, 5));
        list.add(new Entry(3, 8));
        list.add(new Entry(4, 2));
        list.add(new Entry(5, 3));

// 2. 创建一个数据集 DataSet ，用来添加 Entry。一个图中可以包含多个数据集
        LineDataSet set1 = new LineDataSet(list, "XXX");
        set1.setAxisDependency(YAxis.AxisDependency.LEFT);
// 3. 通过数据集设置数据的样式，如字体颜色、线型、线型颜色、填充色、线宽等属性
// draw dashed line
//        set1.enableDashedLine(10f, 5f, 0);
// black lines and points
//        set1.setColor(Color.BLACK);
//        set1.setCircleColor(Color.BLACK);
// line thickness and point size
//        set1.setLineWidth(1f);
//        set1.setCircleRadius(3f);
// draw points as solid circles
//        set1.setDrawCircleHole(false);

//        多组数据时使用这个
//        ArrayList<ILineDataSet> dataSets = new ArrayList<ILineDataSet>();
//        dataSets.add(set1);
//        LineData lineData = new LineData(dataSets);
// 4.将数据集添加到数据 ChartData 中
        LineData lineData = new LineData(set1);
// 5. 将数据添加到图表中
        lineChart.setData(lineData);
        lineChart.invalidate(); //刷新
    }

    private void initView() {
        lineChart = (LineChart) findViewById(R.id.lineChart);
    }
}